//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Linq;
using System.Diagnostics.Contracts;

using ProjectBase.Core.Service;

namespace ProjectBase.Core.Diagnostics
{
    [ContractClassFor(typeof(IFactoryProvider))]
    internal abstract class FactoryProvider : IFactoryProvider
    {
        public object GetService(Type serviceType)
        {
            throw new NotImplementedException();
        }

        #region IFactory Members
        public T CreateInstance<T>(string name = null, Type implementor = null)
            where T : class, IService
        {
            throw new NotImplementedException();
        }

        public object CreateInstance(Type type, string name = null, Type implementor = null)
        {
            Contract.Requires(type.Is(), "parameter type cannot be null nor empty");
            throw new NotImplementedException();
        }

        public IEnumerable<T> CreateInstances<T>()
            where T : class, IService
        {
            throw new NotImplementedException();
        }
        public void Enrich<T>(T instance)
        {
            throw new NotImplementedException();
        }
        #endregion
    }
}